﻿using IM.Easy.Core.Services;
using IM.Easy.Entity.Log;
using IM.Easy.Entity.System;
using IM.Easy.Infrastructure.Query;
using IM.Easy.LogServices.Dtos;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace IM.Easy.LogServices.IServices
{
    /// <summary>
    /// 请求追踪服务
    /// </summary>
    public interface IRequestTrackingService : IAppServices<RequestTrackingLog>
    {
        ///// <summary>
        ///// 记录当前请求追踪信息
        ///// </summary>
        ///// <returns></returns>
        //Task<RequestTrackingLog> LogTracking();

        /// <summary>
        /// 获取当前的追踪日志
        /// </summary>
        /// <returns></returns>
        RequestTrackingLog GetCurrentInfo();

        /// <summary>
        /// 获取所有实体
        /// </summary>
        /// <returns>所有实体的列表</returns>
        PageResponse<RequestTrackingLog> GetPageList(RequestTrackingLogQueryDto query);

        /// <summary>
        /// 根据 ID 删除实体
        /// </summary>
        /// <param name="id">要删除的实体的唯一标识</param>
        /// <returns>操作是否成功</returns>
        bool Delete(params Guid[] key);

        /// <summary>
        /// 获取操作统计
        /// </summary>
        /// <returns></returns>
        List<OperationChartData> GetDateData(RequestTrackingLogQueryDto query);

    }
}
